ลองนึกภาพว่าคุณเป็นสถาปนิก แทนที่จะวาดแผนผังคงที่สำหรับบ้านก้อนอิฐเพียงหลังเดียว คุณจะออกแบบแบบร่างหลัก แบบร่าง ที่สามารถปรับตัวได้กับไม้ เหล็ก หรือกระจก ในภาษา C++ สิ่งนี้เรียกว่า การเขียนโปรแกรมที่เป็นอิสระจากประเภท.
1. กลไกของแบบร่าง
การ รายการพารามิเตอร์เทมเพลต (เช่น template <typename T>) จะสร้างช่องว่างที่เรียกว่า พารามิเตอร์ประเภทเทมเพลต. ซึ่งทำหน้าที่เหมือนตัวแปรสำหรับประเภท ตัวอย่างเช่น ใน template <typename T> ostream &print(ostream &os, const T &obj), T จะถูกกำหนดเฉพาะเมื่อฟังก์ชันถูกเรียกใช้งาน
2. การสร้างตัวจริง
คอมไพเลอร์ไม่แปลงเทมเพลตให้กลายเป็นรหัสเครื่องโดยตรง แต่แทนที่จะเป็น การสร้างตัวจริง เกิดขึ้น: คอมไพเลอร์จะสร้างเวอร์ชันเฉพาะของโค้ดก็ต่อเมื่อมี อาร์กิวเมนต์เทมเพลต ถูกระบุ ด้วยเหตุนี้ คำจำกัดความจึงมักจะอยู่ในไฟล์หัวข้อ
3. การเขียนโค้ดที่ไม่ขึ้นกับประเภท
เพื่อเพิ่มประสิทธิภาพในการนำกลับมาใช้ใหม่ ควรปฏิบัติตาม แนวทางที่ดีที่สุด: ลดข้อกำหนด ในการเขียนโค้ด โดยใช้เพียงตัวดำเนินการ < (ผ่านทาง less<T>) ทำให้ข้อกำหนดต่อประเภทลดลง เมื่อเทียบกับการใช้ >, <=, และ >=. การตรวจสอบมักจะถูกระดับลง คอมไพเลอร์โดยทั่วไปไม่สามารถพบข้อผิดพลาดจำนวนมากในขั้นตอนการคอมไพล์เทมเพลตเอง แต่ส่วนใหญ่จะปรากฏขึ้นระหว่างการสร้างตัวจริง